对象数组按某个属性的某个顺序连续排序

rofer
  • 26

问题描述

按照数据中love这个属性去排序,而且这个顺序必须是“乒乓球、羽毛球、篮球”排序

原始数据如下:

    const data = [
        {
            name: '李',
            love: '篮球'
        },
        {
            name: '李',
            love: '乒乓球'
        },
        {
            name: '李',
            love: '羽毛球'
        },
        {
            name: '张',
            love: '乒乓球'
        },
        {
            name: '张',
            love: '羽毛球'
        },
        {
            name: '张',
            love: '篮球'
        },
        {
            name: '吴',
            love: '羽毛球'
        },    
        {
            name: '吴',
            love: '乒乓球'
        },             

    ]

需要的结果数据如下:

    const data = [
        {
            name: '李',
            love: '乒乓球'
        },
        {
            name: '李',
            love: '羽毛球'
        },
        {
            name: '李',
            love: '篮球'
        },
        {
            name: '张',
            love: '乒乓球'
        },
        {
            name: '张',
            love: '羽毛球'
        },
        {
            name: '张',
            love: '篮球'
        },
        {
            name: '吴',
            love: '乒乓球'
        },    
        {
            name: '吴',
            love: '羽毛球'
        },             

    ]
回复
阅读 42
1 个回答
2234839
  • 3
新手上路,请多包涵

你的题目描述似乎存在问题,
如果按 「按照数据中love这个属性去排序,而且这个顺序必须是“乒乓球、羽毛球、篮球”排序」 实现的话

在线代码演示

但按你后面提供的第二份数据你的目的似乎是 「先将数据按 name 排序,然后再按数据中love这个属性去排序,而且这个顺序必须是“乒乓球、羽毛球、篮球”排序」
实现方案如下

在线代码演示

不过这里的排序是 李 吴 张 ,不清楚你第二份数据中的张排第二位是按照什么规则来的,需要你按照自己的规则稍微修改一下